抽象類別是一種不能建立實體的類別,如果需要使用的話,可以透過繼承的方式給子類使用裡面的屬性或方法,通常在實體化沒有意義的父類別時,就可以改用抽象類別。
abstract
關鍵字open
open
即可以被覆寫抽象比較難理解,舉例來說明
open class Livingthings {
open fun breathe() {
println("生物都會呼吸")
}
}
abstract class Animal : Livingthings() {
override abstract fun breathe()
}
class Cat: Animal(){
override fun breathe() {
println("貓也會呼吸")
}
}
fun main(args: Array<String>){
val lt = Livingthings()
lt.breathe() //生物都會呼吸
val myCat = Cat()
myCat.breathe() //貓也會呼吸
}